Wireless communication systems are susceptible to so-called “burst” errors (e.g., a large amount of errors are received over a very short period of time). To prevent such errors from degrading a received signal, existing techniques attempt to break-up these errors and evenly distribute them over time in a random fashion. One technique uses bit or symbol interleaving in combination with Forward Error Correction (FEC) encoding. The interleaver permutes FEC encoded bits before transmission. When these permutated bits are received by a receiver, an inverse de-interleaving is completed to restore the bit stream to its original sequence.
Conventional interleavers and de-interleavers have their drawbacks, however. Many existing interleavers/de-interleavers require the use of look-up tables that require a large number of memory elements which can be costly both in terms of money and space.